package com.projet.glb2r.DAO;

import java.util.ArrayList;
import java.util.List;

import com.projet.glb2r.Base_et_Provider.Provider;
import com.projet.glb2r.Base_et_Provider.TableProduit;
import com.projet.glb2r.Objet.ObjetProduit;

import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;


public class DAOProduit {
	private final String ROWID = "ROWID";
	
	private String[] allColumns = { ROWID, TableProduit.KEY_NOM,
									TableProduit.KEY_PRIX, TableProduit.KEY_TVA };
	
	
	public void insert(ObjetProduit produit, ContentResolver contentresolver) {
		ContentValues values = new ContentValues();
		values.put(TableProduit.KEY_NOM, produit.getNom());
		values.put(TableProduit.KEY_DESCRIPTION, produit.getDescription());
		values.put(TableProduit.KEY_PRIX, produit.getPrix());
		values.put(TableProduit.KEY_TVA, produit.getTva());
		contentresolver.insert(Provider.CONTENT_URI_PRODUIT, values);
	}
	
	public void deleteProduit(ObjetProduit produit, ContentResolver contentResolver) {
		int id = getIdProduitAvecNom(produit.getNom(), contentResolver);
		String description = produit.getDescription();
		System.out.println("Client deleted with nom: " + id);
		contentResolver.delete(Provider.CONTENT_URI_PRODUIT, ROWID
				+ " = " + id+" and "+TableProduit.KEY_DESCRIPTION+" = "+description, null);
	}
	

	public void deleteProduitAvecID(int id, ContentResolver contentResolver) {
		contentResolver.delete(Provider.CONTENT_URI_PRODUIT, ROWID 
				+ " = ? ",
				new String[] { String.valueOf(id) });
	}

	public ArrayList<ObjetProduit> getAllProduit(String description, ContentResolver contentResolver){
		ArrayList<ObjetProduit> listeProduits = new ArrayList<ObjetProduit>();

		Cursor cursor = contentResolver.query(Provider.CONTENT_URI_PRODUIT, allColumns, TableProduit.KEY_DESCRIPTION+" = ?", new String[]{description}, null);
		
		
		if(cursor.getCount()==0)
			return listeProduits;
		cursor.moveToFirst();
		do{
			ObjetProduit produit = cursorToProduit(cursor);
			listeProduits.add(produit);
		}
		while(cursor.moveToNext());
		
		cursor.close();
		return listeProduits;
	}
	
	private ObjetProduit cursorToProduit(Cursor cursor) {
		ObjetProduit produit = new ObjetProduit();
		produit.setIdProduit(cursor.getInt(0));
		produit.setNom(cursor.getString(1));
		produit.setPrix(cursor.getDouble(2));
		produit.setTva(cursor.getDouble(3));
		return produit;
	}


	public ObjetProduit getProduit(ContentResolver contentResolver, String selection, String [] selectionArgs) {
		ObjetProduit produit = new ObjetProduit();
		Cursor cursor = contentResolver.query(Provider.CONTENT_URI_PRODUIT, allColumns, selection, selectionArgs, null);
		cursor.moveToFirst();

		produit = cursorToProduit(cursor);
		cursor.close();
		return produit;
	}
	
	public int getIdProduitAvecNom(String nom, ContentResolver contentResolver) {
		Cursor cursor = contentResolver.query(Provider.CONTENT_URI_PRODUIT, new String[]{ROWID}, TableProduit.KEY_NOM+" = ?", new String[]{nom}, null);
		int idproduit = cursor.getInt(0);
		cursor.close();
		return idproduit;
	}

}

